package cn.liontalk.dao;

import cn.liontalk.entity.BrokerMessageLog;
import cn.liontalk.entity.Order;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @author ZhouZhe
 * @version 1.0
 * @description 更新消息的相关操作
 * @date 2018-12-11 21:43
 **/
public interface BrokerMessageDao {


    /**
     * 更新消息的状态
     * @param messageId x消息id
     * @param status 消息状态
     * @param data 更新时间
     */
    void changeBrokerMessageLogStatus(@Param("messageId") String messageId,@Param("status")  String status,@Param("data") Date data);


    /**
     * 插入消息实体信息
     * @param brokerMessageLog brokerMessageLog
     */
    void insertBrokerMessageLog(BrokerMessageLog brokerMessageLog);


    /**
     * 查询超时和状态为0的消息
     * @return List<BrokerMessageLog> 消息记录列表
     */
    List<BrokerMessageLog> queryStatusAndTimeoutMessage();


    /**
     * 消息发送失败之后 重试
     * @param messageId 消息id
     * @param updateTime 更新时间
     */
    void updateReSend(@Param("messageId") String messageId,@Param("updateTime")  Date updateTime);
}
